/**
* Tests Music2
*
*
* @author Bijan Tajmir
*
*/
public class TestMusic2
{
public static void main(String[] args)
{
int test = 0;
Music2[] myMusic2 = new Music2[10];
myMusic2[0] = new Music2("Pieces of You", 1994, "Jewel");
myMusic2[1] = new Music2("Jagged Little Pill", 1995, "Alanis Morissette");
myMusic2[2] = new Music2("What If It's You", 1995, "Reba McEntire");
myMusic2[3] = new Music2("Misunderstood", 2001, "Pink");
myMusic2[4] = new Music2("Laundry Service", 2001, "Shakira");
myMusic2[5] = new Music2("Taking the Long Way", 2006, "Dixie Chicks");
myMusic2[6] = new Music2("Under My Skin", 2004, "Avril Lavigne");
myMusic2[7] = new Music2("Let Go", 2002, "Avril Lavigne");
myMusic2[8] = new Music2("Let It Go", 2007, "Tim McGraw");
myMusic2[9] = new Music2("White Flag", 2004, "Dido");
printMusic2(myMusic2);
myMusic2 = insertionSort(myMusic2);
test = searchTitle(myMusic2, "Misunderstood");
System.out.println("Search - Title - Misunderstood");
if (test != -1)
{
System.out.println("Found: " + myMusic2[test].gettitle() + ", " + myMusic2[test].getyear() + ", " + myMusic2[test].getsinger());
}
else
{
System.out.println("Not found.");
}
System.out.println();
test = searchTitle(myMusic2, "Under Paid");
System.out.println("Search - Title - Under Paid");
if (test != -1)
{
System.out.println("Found: " + myMusic2[test].gettitle() + ", " + myMusic2[test].getyear() + ", " + myMusic2[test].getsinger());
}
else
{
System.out.println("Not found.");
}
System.out.println();
searchYear(myMusic2, 2005);
searchYear(myMusic2, 2006);
searchSinger(myMusic2, "Darth Maul");
searchSinger(myMusic2, "Dido");
}
public static void printMusic2(Music2[] r)
{
System.out.printf("%-25s%-6s%-20s\n", "Title", "Year", "Singer");
System.out.println("---------------------------------------------------");
for(int i = 0; i < r.length; i++)
{
System.out.println(r[i]);
}
System.out.println();
}
public static Music2[] insertionSort(Music2[] r)
{
Music2[] sorted = new Music2[r.length];
for ( int i = 0 ; i < r.length ; i++ )
{
String next = r[i].gettitle();
int insertindex = 0;
int k = i;
while ( k > 0 && insertindex == 0 )
{
if ( next.compareTo( sorted[k - 1].gettitle() ) > 0 )
{
insertindex = k;
}
else
{
sorted[k] = sorted[k - 1];
}
k--;
}
sorted[ insertindex ] = r[i];
}
return sorted;
}
public static int searchTitle(Music2[] r, String toFind )
{
int high = r.length;
int low = -1;
int probe;
while ( high - low > 1 )
{
probe = ( high + low ) / 2;
if ( r[probe].gettitle().compareTo(toFind) > 0)
{
high = probe;
}
else
{
low = probe;
}
}
if ( (low >= 0) && (r[low].gettitle().compareTo(toFind) == 0 ))
{
return low;
}
else
{
return -1;
}
}
public static void searchYear(Music2[] r, int toFind)
{
int found = 0;
System.out.println("Search - Year - " + toFind);
for(int i = 0; i < r.length; i++)
{
if (r[i].getyear() == toFind)
{
System.out.println("Found: " + r[i].gettitle() + ", " + r[i].getyear() + ", " + r[i].getsinger());
found++;
}
}
if (found == 0)
{
System.out.println("Not found.");
}
System.out.println();
}
public static void searchSinger(Music2[] r, String toFind)
{
int found = 0;
System.out.println("Search - Singer - " + toFind);
for(int i = 0; i < r.length; i++)
{
if (r[i].getsinger().compareTo(toFind) == 0)
{
System.out.println("Found: " + r[i].gettitle() + ", " + r[i].getyear() + ", " + r[i].getsinger());
found++;
}
}
if (found == 0)
{
System.out.println("Not found.");
}
System.out.println();
}
}